#+AUTHOR:Joshua Branson
#+TITLE: Artanis
#+LATEX_HEADER: \usepackage{lmodern}
#+LATEX_HEADER: \usepackage[QX]{fontenc}
#+OPTIONS: H:10 toc:nil

* Artanis

** MVC  (model view controller)

*** Model is dealing with the database

*** ORM Object/Relational Mapping

AKA, suppose you have a bunch of data in memory that needs to be stored in the database...Simple.  Just run a query.

Suppose you have a large website.  You have hundreds of people accessing the database...People changing and modifying stuff.  Ok, that's a lot of queries.  Wouldn't it by nice, to some some program that does all the database for you, so you never have to do queries?  Instead, you just deal in data.  This program that does the querying for you, just makes sure that your data in RAM always matches what's in the database.  If you modify the data, the database is modified too!  Cool huh?

ORMs deal with 80-90% of database problems.  But 10-20% may need to use actual queries.

Artanis currently doesn't provide an ORM.  All of their possible solutions are experimental.

*** Web Socket

GNU Artanis tries to use web socket, which is a communication protocol between client and server.  It is compliant with HTTP, but is much faster than HTTP.  It lets the communication stay open, and server and client can communicate back and forth.  Since Artanis is using this protocol, it may allow for faster updates of things.
